package com.phiture.erp.finance.core.pojo.vo;

import com.phiture.erp.finance.dal.entity.ErpFinanceStatementItemsDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - 对账单新增/修改 Request VO")
@Data
public class ErpFinanceStatementSaveReqVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18388")
    private Long id;

    @Schema(description = "对账单号")
    private String no;

    @Schema(description = "供应商")
    private Long supplierId;

    @Schema(description = "类型", example = "2")
    private Integer type;

    @Schema(description = "对账周期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "对账周期不能为空")
    private String billingPeriod;

    @Schema(description = "生成日期")
    private LocalDateTime statementDate;

    @Schema(description = "总金额（含税）")
    private BigDecimal totalAmount;

    @Schema(description = "已付金额")
    private BigDecimal paidAmount;

    @Schema(description = "状态", example = "2")
    private Integer status;

    @Schema(description = "对账单明细列表")
    private List<ErpFinanceStatementItemsDO> financeStatementItemss;

}